package by.exposit.dao;

import by.exposit.dao.entity.FieldEntity;
import by.exposit.dao.entity.ProjectEntity;
import by.exposit.dao.entity.RequestEntity;
import by.exposit.dao.entity.UserEntity;
import by.exposit.domain.Field;
import by.exposit.domain.Request;
import by.exposit.domain.Status;

import java.util.List;

/**
 * Created by HaRiA on 30.07.2014.
 */
public interface RequestDAO   extends GenericDAO <RequestEntity,Long>
{
    public List<RequestEntity> requestUserList(UserEntity userEntity);

    public List<RequestEntity> requestFieldList(FieldEntity field);

    public void changeStatusRequest(Request request, Status status);

    public void allocateMoney(RequestEntity requestEntity);

    public List<RequestEntity> satisfyRequest();

    public List<RequestEntity> financedButNotExecuted();

    public List<RequestEntity> totalFundsAllocatedForSphere(long sphereId);

    public float percentageOfSuccessfullyCompletedProjects(Field field);

    public long sumForConsiderRequest(long sphereId);

    public  RequestEntity getRequestByProject(ProjectEntity projectEntity);
}
